home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Gold Medal Software 2
/
Gold Medal Software Volume 2 (Gold Medal) (1994).iso
/
windows
/
win31
/
macsyma.arj
/
MACSDEMO.EXE
/
SOLVE.OUT
< prev
next >
Wrap
Text File
|
1993-09-11
|
10KB
|
128 lines
(c1) /* DEMONSTRATION OF THE MACSYMA FUNCTION `SOLVE' */
(kill(a,b,c,d,p,q), breakup:false)$
(c2) solve(q^2*x^2+p^2*q*x-p*q*x-p^3=0,x);
|$label(0,15,Times New Roman,$(d2$))$open([)x$hinge()$in( = )$in( - )$q($sup(p,2),q)$ina($, )$hinge()x$hinge()$in( = )$q(p,q)$close(])
(c3) solve(x^6-a=0,x);
|$label(0,15,Times New Roman,$(d3$))$open([)x$hinge()$in( = )$q($paren($sqrt(3)$in( )$italictext(i)$in( + )1,$(,$))$in( )$sup(a,1$in(/)6),2)$ina($, )$hinge()x$hinge()$in( = )$q($paren($sqrt(3)$in( )$italictext(i)$in( - )1,$(,$))$in( )$sup(a,1$in(/)6),2)$ina($, )$hinge()x$hinge()$in( = )$in( - )$sup(a,1$in(/)6)$ina($, )$hinge()x$hinge()$in( = )$in( - )$q($paren($sqrt(3)$in( )$italictext(i)$in( + )1,$(,$))$in( )$sup(a,1$in(/)6),2)$ina($, )$hinge()x$hinge()$in( = )$in( - )$q($paren($sqrt(3)$in( )$italictext(i)$in( - )1,$(,$))$in( )$sup(a,1$in(/)6),2)$ina($, )$hinge()x$hinge()$in( = )$sup(a,1$in(/)6)$close(])
(c4) /* If the first argument is not an equation, it is assumed that it is the
left hand side of an equation whose right hand side is 0.
The second argument (the variables to be solved for) is optional,
if the equations are to be solved for all variables in the expression. */
solve(x^4+1);
|$label(0,15,Times New Roman,$(d4$))$open([)x$hinge()$in( = )$in( - )$q(1,$sqrt($italictext(i)))$ina($, )$hinge()x$hinge()$in( = )$in( - )$sqrt($italictext(i))$ina($, )$hinge()x$hinge()$in( = )$q(1,$sqrt($italictext(i)))$ina($, )$hinge()x$hinge()$in( = )$sqrt($italictext(i))$close(])
(c5) /* Simultaneous linear equations: */
solve([x+y+5,x-2*y+6]);
|$label(0,15,Times New Roman,$(d5$))$open([)$open([)y$hinge()$in( = )$q(1,3)$ina($, )$hinge()x$hinge()$in( = )$in( - )$q(16,3)$close(])$close(])
(c6) /* Reduction of a set of (non-linear) polynomial equations: */
solve([x*y=1, x+y=2]);
C:\MACSD2B\library1\algsys.fas being loaded.
C:\MACSD2B\library1\grobner.fas being loaded.
C:\MACSD2B\library1\result.fas being loaded.
|$label(0,15,Times New Roman,$(d6$))$open([)$open([)y$hinge()$in( = )1$ina($, )$hinge()x$hinge()$in( = )1$close(])$close(])
(c7) /* A problem involving trigonometric or arctrigonometric functions: */
solve(asin(x)=1,x);
|$label(0,15,Times New Roman,$(d7$))$open([)x$hinge()$in( = )sin$paren(1)$close(])
(c8) /* A mixture of types: */
solve((sin(x)^2+1)^2*(x+1)^2,x);
SOLVE is using arc-trig functions to get a solution.
Some solutions may be lost.
|$label(0,15,Times New Roman,$(d8$))$open([)x$hinge()$in( = )$in( - )$italictext(i)$in( )asinh$paren(1)$ina($, )$hinge()x$hinge()$in( = )$italictext(i)$hinge()$in( )asinh$paren(1)$ina($, )$hinge()x$hinge()$in( = )$in( - )1$close(])
(c9) solve(asin(a*x^2+b*x+c)+d,x);
|$label(0,15,Times New Roman,$(d9$))$open([)x$hinge()$in( = )$in( - )$q($sqrt($in( - )4$in( )a$in( )sin$paren(d)$in( - )4$in( )a$in( )c$in( + )$sup(b,2))$in( + )b,2$in( )a)$ina($, )$hinge()x$hinge()$in( = )$q($sqrt($in( - )4$in( )a$in( )sin$paren(d)$in( - )4$in( )a$in( )c$in( + )$sup(b,2))$in( - )b,2$in( )a)$close(])
(c10) /* Application of the cubic formula: */
eq:4*x^3+x+10;
|$label(0,15,Times New Roman,$(d10$))4$in( )$sup(x,3)$hinge()$in( + )x$hinge()$in( + )10
(c11) solve(eq);
|$label(0,15,Times New Roman,$(d11$))$open([)x$hinge()$in( = )$sup($paren($q($sqrt(2701),24$in( )$sqrt(3))$in( - )$q(5,4),$(,$)),1$in(/)3)$in( )$paren($in( - )$q($sqrt(3)$in( )$italictext(i),2)$in( - )$q(1,2),$(,$))$hinge()$in( - )$q($q($sqrt(3)$in( )$italictext(i),2)$in( - )$q(1,2),12$in( )$sup($paren($q($sqrt(2701),24$in( )$sqrt(3))$in( - )$q(5,4),$(,$)),1$in(/)3))$ina($, )$hinge()x$hinge()$in( = )$sup($paren($q($sqrt(2701),24$in( )$sqrt(3))$in( - )$q(5,4),$(,$)),1$in(/)3)$in( )$paren($q($sqrt(3)$in( )$italictext(i),2)$in( - )$q(1,2),$(,$))$hinge()$in( - )$q($in( - )$q($sqrt(3)$in( )$italictext(i),2)$in( - )$q(1,2),12$in( )$sup($paren($q($sqrt(2701),24$in( )$sqrt(3))$in( - )$q(5,4),$(,$)),1$in(/)3))$ina($, )$hinge()x$hinge()$in( = )$sup($paren($q($sqrt(2701),24$in( )$sqrt(3))$in( - )$q(5,4),$(,$)),1$in(/)3)$hinge()$in( - )$q(1,12$in( )$sup($paren($q($sqrt(2701),24$in( )$sqrt(3))$in( - )$q(5,4),$(,$)),1$in(/)3))$close(])
(c12) /* Let's check one answer by substituting back. */
answer:last(%)$
(c13) ev(eq,answer,expand,ratsimp);
|$label(0,15,Times New Roman,$(d13$))0
(c14) /* To demonstrate the superiority of this over numerical approximation,
we evaluate ANSWER numerically, then substitute back. */
answer_numerical:ev(answer,numer);
|$label(0,15,Times New Roman,$(d14$))x$hinge()$in( = )$in( - )1.29722
(c15) ev(eq,answer_numerical,expand);
|$label(0,15,Times New Roman,$(d15$))$in( - )0.02901
(c16) /* SOLVE can handle polynomials which decompose to solvable equations. */
moby: 1769472*s^8-3538944*s^7+3907584*s^6-2764800*s^5
+1378560*s^4-484608*s^3+119520*s^2-18768*s+1585;
|$label(0,15,Times New Roman,$(d16$))1769472$in( )$sup(s,8)$hinge()$in( - )3538944$in( )$sup(s,7)$hinge()$in( + )3907584$in( )$sup(s,6)$hinge()$in( - )2764800$in( )$sup(s,5)$hinge()$in( + )1378560$in( )$sup(s,4)$hinge()$in( - )484608$in( )$sup(s,3)$hinge()$in( + )119520$in( )$sup(s,2)$hinge()$in( - )18768$in( )s$hinge()$in( + )1585
(c17) /* Here are the decompositions it uses: */
polydecomp(moby,s);
C:\MACSD2B\library1\combin.fas being loaded.
|$label(0,15,Times New Roman,$(d17$))$open([)3$in( )$sup(s,2)$hinge()$in( - )2$ina($, )$hinge()$q($sup(s,2)$in( - )13,12)$ina($, )$hinge()6$in( )$sup(s,2)$hinge()$in( + )11$ina($, )$hinge()4$in( )s$hinge()$in( - )1$close(])
(c18) /* Note MOBY can't be factored. */
factor(moby);
|$label(0,15,Times New Roman,$(d18$))1769472$in( )$sup(s,8)$hinge()$in( - )3538944$in( )$sup(s,7)$hinge()$in( + )3907584$in( )$sup(s,6)$hinge()$in( - )2764800$in( )$sup(s,5)$hinge()$in( + )1378560$in( )$sup(s,4)$hinge()$in( - )484608$in( )$sup(s,3)$hinge()$in( + )119520$in( )$sup(s,2)$hinge()$in( - )18768$in( )s$hinge()$in( + )1585
(c19) /* But it can be solved anyway. */
solve(moby);
|$label(0,15,Times New Roman,$(d19$))$open([)s$hinge()$in( = )$in( - )$q($sqrt($sqrt(13$in( )$sqrt(3)$in( - )12$in( )$sqrt(2))$in( + )11$in( )$sup(3,1$in(/)4))$in( )$italictext(i)$in( - )$sup(3,1$in(/)8)$in( )$sqrt(6),4$in( )$sup(3,1$in(/)8)$in( )$sqrt(6))$ina($, )$hinge()s$hinge()$in( = )$q($sqrt($sqrt(13$in( )$sqrt(3)$in( - )12$in( )$sqrt(2))$in( + )11$in( )$sup(3,1$in(/)4))$in( )$italictext(i)$in( + )$sup(3,1$in(/)8)$in( )$sqrt(6),4$in( )$sup(3,1$in(/)8)$in( )$sqrt(6))$ina($, )$hinge()s$hinge()$in( = )$in( - )$q($sqrt(11$in( )$sup(3,1$in(/)4)$in( - )$sqrt(13$in( )$sqrt(3)$in( - )12$in( )$sqrt(2)))$in( )$italictext(i)$in( - )$sup(3,1$in(/)8)$in( )$sqrt(6),4$in( )$sup(3,1$in(/)8)$in( )$sqrt(6))$ina($, )$hinge()s$hinge()$in( = )$q($sqrt(11$in( )$sup(3,1$in(/)4)$in( - )$sqrt(13$in( )$sqrt(3)$in( - )12$in( )$sqrt(2)))$in( )$italictext(i)$in( + )$sup(3,1$in(/)8)$in( )$sqrt(6),4$in( )$sup(3,1$in(/)8)$in( )$sqrt(6))$ina($, )$hinge()s$hinge()$in( = )$in( - )$q($sqrt($sqrt(13$in( )$sqrt(3)$in( + )12$in( )$sqrt(2))$in( + )11$in( )$sup(3,1$in(/)4))$in( )$italictext(i)$in( - )$sup(3,1$in(/)8)$in( )$sqrt(6),4$in( )$sup(3,1$in(/)8)$in( )$sqrt(6))$ina($, )$hinge()s$hinge()$in( = )$q($sqrt($sqrt(13$in( )$sqrt(3)$in( + )12$in( )$sqrt(2))$in( + )11$in( )$sup(3,1$in(/)4))$in( )$italictext(i)$in( + )$sup(3,1$in(/)8)$in( )$sqrt(6),4$in( )$sup(3,1$in(/)8)$in( )$sqrt(6))$ina($, )$hinge()s$hinge()$in( = )$in( - )$q($sqrt(11$in( )$sup(3,1$in(/)4)$in( - )$sqrt(13$in( )$sqrt(3)$in( + )12$in( )$sqrt(2)))$in( )$italictext(i)$in( - )$sup(3,1$in(/)8)$in( )$sqrt(6),4$in( )$sup(3,1$in(/)8)$in( )$sqrt(6))$ina($, )$hinge()s$hinge()$in( = )$q($sqrt(11$in( )$sup(3,1$in(/)4)$in( - )$sqrt(13$in( )$sqrt(3)$in( + )12$in( )$sqrt(2)))$in( )$italictext(i)$in( + )$sup(3,1$in(/)8)$in( )$sqrt(6),4$in( )$sup(3,1$in(/)8)$in( )$sqrt(6))$close(])
(c20) /* Some additional capabilities: */
solve(5^x=%e,x);
|$label(0,15,Times New Roman,$(d20$))$open([)x$hinge()$in( = )$q(1,log$paren(5))$close(])
(c21) solve(%e^(2*x)+2*%e^x+1=z,x);
|$label(0,15,Times New Roman,$(d21$))$open([)x$hinge()$in( = )log$paren($in( - )$sqrt(z)$in( - )1)$ina($, )$hinge()x$hinge()$in( = )log$paren($sqrt(z)$in( - )1)$close(])
(c22) /* SOLVE does not directly solve equations involving radicals.
For example: */
eqn: x + sqrt(x) = 1 $
(c23) solve(eqn,x),solveexplicit:true;
|$label(0,15,Times New Roman,$(d23$))$open([)$close(])
(c24) /* But such equations can often be solved "manually" using
techniques such as squaring both sides of an equation: */
solve(eqn,sqrt(x));
|$label(0,15,Times New Roman,$(d24$))$open([)$sqrt(x)$hinge()$in( = )1$hinge()$in( - )x$close(])
(c25) answer: solve(%^2,x);
|$label(0,15,Times New Roman,$(d25$))$open([)x$hinge()$in( = )$in( - )$q($sqrt(5)$in( - )3,2)$ina($, )$hinge()x$hinge()$in( = )$q($sqrt(5)$in( + )3,2)$close(])
(c26) /* We must check the proposed solutions returned by SOLVE for
validity. SQRTDENEST or SFLOAT can often be used for this
purpose: */
/* The first proposed solution is ok: */
expand(sqrtdenest(subst(answer[1],eqn)));
C:\MACSD2B\share\sqdnst.fas being loaded.
|$label(0,15,Times New Roman,$(d26$))1$hinge()$in( = )1
(c27) /* or */
sfloat(subst(answer[1],eqn));
|$label(0,15,Times New Roman,$(d27$))1.0$hinge()$in( = )1.0
(c28) /* The second proposed solution is invalid: */
expand(sqrtdenest(subst(answer[2],eqn)));
|$label(0,15,Times New Roman,$(d28$))$sqrt(5)$hinge()$in( + )2$hinge()$in( = )1
(c29) /* or */
sfloat(subst(answer[2],eqn));
|$label(0,15,Times New Roman,$(d29$))4.23607$hinge()$in( = )1.0
(c30) /* Do EXAMPLE(SOLVE); for more examples.
Clean up: */
(remvalue(answer,answer_numerical,eq,eqn,moby),reset(breakup))$